package Regex.博客;

public class Test4 {
    public static void main(String[] args) {
        // 必须是数字 字母 下划线 至少 6位
        System.out.println("2442fsfsf".matches("\\w{6,}"));//true
        System.out.println("244f".matches("\\w{6,}"));//false

        // 必须是数字和字符 必须是4位
        System.out.println("23dF".matches("[a-zA-Z0-9]{4}"));//true
        System.out.println("23 F".matches("[a-zA-Z0-9]{4}"));//false
        System.out.println("23dF".matches("[\\w&&[^_]]{4}"));//true
        System.out.println("23_F".matches("[\\w&&[^_]]{4}"));//false
    }
}

/*

元字符
元字符是正则表达式中具有特殊含义的字符
它们用于匹配特定的字符或字符集合。常见的元字符包括：
.：匹配任意字符，除了换行符。
^：匹配字符串的开头。
$：匹配字符串的结尾。
*：匹配前面的字符零次或多次。
+：匹配前面的字符一次或多次。
?：匹配前面的字符零次或一次。
{n}：匹配前面的字符恰好n次。
{n,}：匹配前面的字符至少n次。
{n,m}：匹配前面的字符至少n次，但不超过m次。
[]：匹配字符集合中的任意一个字符。
|：表示或的关系，匹配两个或多个表达式中的任意一个。
()：用于分组，将多个元素组合成一个整体。
\：用于转义元字符，使其失去特殊含义。
转义字符
转义字符用于将元字符转义为普通字符
或将普通字符转义为元字符。常见的转义字符包括：

\d：匹配数字字符。
\D：匹配非数字字符。
\w：匹配字母、数字或下划线字符。
\W：匹配非字母、数字或下划线字符。
\s：匹配空格、制表符或换行符。
\S：匹配非空格、制表符或换行符字符。
\b：匹配单词边界。
\B：匹配非单词边界。
\\：匹配反斜杠字符本身。
需要注意的是，在Java中使用正则表达式时
需要将反斜杠字符\转义为\\，否则会出现编译错误。
例如，要匹配一个数字字符，可以使用\d，但在Java中需要写成\\d。
* */